package com.teach;

import java.util.Objects;

/**
 * <pre>
 * -
 * Author : J.L.Zhou
 * E-Mail : 2233875735@qq.com
 * Tel : 151 1104 7708
 * Date : 2021-04-13 15:16
 * Version : 1.0
 * Copyright 2021 jlzhou.top Inc. All rights reserved.
 * Warning: this content is only for internal circulation of the company.
 *          It is forbidden to divulge it or use it for other commercial purposes.
 * </pre>
 **/
public class Student1 {
  private String name;

  private int age;

  public Student1(String name) {
    this.name = name;
  }

  /**
   * 对象被回收之前调用的
   * @throws Throwable
   */
  @Override
  protected void finalize() throws Throwable {
    System.out.println("正在销毁:"+this);
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    Student1 student1 = (Student1) o;

    if (age != student1.age) return false;
    return name.equals(student1.name);
  }

  @Override
  public int hashCode() {
//    int result = name.hashCode();
//    result = 31 * result + age;
//    return result;
    Objects.hash(name,age);
  }

  @Override
  public String toString() {
    return super.toString()+"{" +
        "name='" + name + '\'' +
        '}';
  }
}
